
package com.eworking.eim.group;

import org.jivesoftware.smackx.muc.UserStatusListener;

import com.eworking.eim.user.EIMAccountUtils;
import com.eworking.eim.util.EIMLog;

public class EIMMemberStatusListener implements UserStatusListener {
    
    /** 日志输出标记 */
    private static final String _TAG = EIMMemberStatusListener.class.getSimpleName();
    
    /** 群组ID */
    private String roomJID;
    
    public EIMMemberStatusListener(String roomJID) {
        this.roomJID = roomJID;
    }
    
    /**
     * 被赋予管理员权限
     */
    @Override
    public void adminGranted() {
        // TODO 自动生成方法存根注释，方法实现时请删除此注释
        
    }
    
    /**
     * 被取消管理员权限
     */
    @Override
    public void adminRevoked() {
        // TODO 自动生成方法存根注释，方法实现时请删除此注释
        
    }
    
    @Override
    public void banned(String arg0, String arg1) {
        // TODO 自动生成方法存根注释，方法实现时请删除此注释
        
    }
    
    /**
     * 被踢出群组
     */
    @Override
    public void kicked(String JID, String reason) {
        try {
            String groupId = EIMAccountUtils.getGroupIdFromGroupJID(this.roomJID);
            // 删除客户端群组信息
            EIMGroupManager.getInstance().deleteGroupClient(groupId);
            for (EIMGroupChangeListener groupChangeListener : EIMGroupManager.getInstance().allGroupChangeListeners) {
                groupChangeListener.onUserRemoved(groupId, "");
            }
            EIMLog.d(_TAG, "被踢出群组" + groupId);
        } catch (Exception e) {
            EIMLog.e(_TAG, "踢出群组失败：" + JID);
        }
    }
    
    /**
     * 被赋予会员权限
     */
    @Override
    public void membershipGranted() {
        // TODO 自动生成方法存根注释，方法实现时请删除此注释
        
    }
    
    /**
     * 被取消会员权限
     */
    @Override
    public void membershipRevoked() {
        try {
            String groupId = EIMAccountUtils.getGroupIdFromGroupJID(this.roomJID);
            // 删除客户端群组信息
            EIMGroupManager.getInstance().deleteGroupClient(groupId);
            for (EIMGroupChangeListener groupChangeListener : EIMGroupManager.getInstance().allGroupChangeListeners) {
                groupChangeListener.onUserRemoved(groupId, "");
            }
            EIMLog.d(_TAG, "被取消会员权限" + groupId);
        } catch (Exception e) {
            EIMLog.e(_TAG, "被取消会员权限:" + e.getMessage());
        }
    }
    
    /**
     * 被赋予主持人权限
     */
    @Override
    public void moderatorGranted() {
        // TODO 自动生成方法存根注释，方法实现时请删除此注释
        
    }
    
    /**
     * 被取消主持人权限
     */
    @Override
    public void moderatorRevoked() {
        // TODO 自动生成方法存根注释，方法实现时请删除此注释
        
    }
    
    /**
     * 被赋予群组拥有者权限
     */
    @Override
    public void ownershipGranted() {
        // TODO 自动生成方法存根注释，方法实现时请删除此注释
        
    }
    
    /**
     * 被取消群组拥有者权限
     */
    @Override
    public void ownershipRevoked() {
        // TODO 自动生成方法存根注释，方法实现时请删除此注释
        
    }
    
    /**
     * 被赋予发言权限
     */
    @Override
    public void voiceGranted() {
        // TODO 自动生成方法存根注释，方法实现时请删除此注释
        
    }
    
    /**
     * 被取消发言权限
     */
    @Override
    public void voiceRevoked() {
        // TODO 自动生成方法存根注释，方法实现时请删除此注释
        
    }
}
